jjzjj

java - java.io.PrintStream 上的线程争用

全部标签

ruby-on-rails - 从 Rails 上的 base64 编码图像中检索文件名和内容类型

我正在尝试检索以base64编码格式接收的图像的内容类型和文件名。这是使用base64编码图像执行POST请求的代码require'net/http'require"rubygems"require'active_support'url=URI.parse('http://localhost:3000/')image=ActiveSupport::Base64.encode64(open("public/images/rails.png").to_a.join)post_params={'image'=>image}Net::HTTP.post_form(url,post_params

Ruby 并行/多线程编程来读取巨大的数据库

我有一个ruby​​脚本读取一个巨大的表(约2000万行),进行一些处理并将其提供给Solr用于索引目的。这一直是我们流程中的一大瓶颈。我打算在这里加快速度,我想实现某种并行性。我对Ruby的多线程特性感到困惑。我们的服务器有ruby1.8.7(2009-06-12补丁级别174)[x86_64-linux]。来自thisblogpost和thisquestionatStackOverflow可见Ruby没有“真正的”多线程方法。我们的服务器有多个核心,所以使用parallelgem对我来说似乎是另一种方法。我应该采用什么方法?此外,我们将非常感谢您对并行数据库读取馈送系统的任何投入。

OSX 上的 Rubygems 丢失

我觉得自己像个十足的白痴,但我整天都在研究这个,却一无所获。我重新启动了几次,试图在我的OSX环境、RVM、Brew、Ruby上完全安装Ruby:每次我完成Ruby安装时,它都会在ruby​​gems安装上触底。我不得不重新开始的原因是,在我第一次成功安装(使用打包的一体式RubyInstaller)后,RVM不会在Jewellerybox中更新,所以我无法管理我的gems-这是一个问题通过在/usr/local中而不是在我自己的目录下的系统上的初始Ruby安装。为了解决这个问题,我卸载了我所有的Ruby东西并重新开始。一切正常,直到ruby​​编译器在安装ruby​​2.0.0时开始

ruby - MailCatcher 不适用于 VM 上的 rbenv

我在使用rbenv管理的VM(VirtualBox)中安装了MailCatcher。但是,mailcatcher不起作用,在下面显示错误消息:`require':cannotloadsuchfile--i18n/core_ext/string/interpolate(LoadError)i18n好像没装,我装了[vagrant@localhost~]$gemlisti18n***LOCALGEMS***i18n(0.7.0.beta1)我同样安装在AWSEC2中,它可以工作。我的VM中发生了什么?---详情---操作系统:CentOS6.5Ruby:2.1.1和rbenv0.4.0完整

ruby - 没有 nginx 的 Puma - 同一 IP 上的多个 ruby​​ 应用程序 :PORT

Nginx在生产中的重要性通常基于它为慢速客户端提供服务的能力;在RESTfulAPI的设置中,它似乎是生产堆栈的一个不必要的层,尤其是Puma(不像广泛使用的unicorn可以处理nginx工作)。Pumacanallowmultipleslowclientstoconnectwithoutrequiringaworkertobeblockedontherequesttransaction.Becauseofthis,Pumahandlesslowclientsgracefully.HerokurecommendsPumaforuseinscenarioswhereyouexpect

ruby - Ruby 中的工作线程

我正在使用ruby​​+qt编写一个简单的内存游戏(试图暂时摆脱c++...)为了允许X秒超时来查看两个打开的部分,我需要计时器或在后台线程中完成工作。在不重新发明轮子的情况下实现这一点的最简单方法是什么?ruby线程?Qt线程?Qt定时器? 最佳答案 我不知道这是否是最好的解决方案,但是:block=Proc.new{Thread.pass}timer=Qt::Timer.new(window)invoke=Qt::BlockInvocation.new(timer,block,"invoke()")Qt::Object.conn

ruby - 如何使用 ruby​​ fibers 避免阻塞 IO

我需要将目录中的一堆文件上传到S3。由于上传所需的90%以上的时间都花在了等待http请求完成上,所以我想以某种方式同时执行其中的几个。Fibers能帮我解决这个问题吗?它们被描述为解决此类问题的一种方法,但我想不出在http调用阻塞时我可以做任何工作的任何方法。有什么方法可以在没有线程的情况下解决这个问题? 最佳答案 我没有使用1.9中的纤程,但是1.8.6中的常规线程可以解决这个问题。尝试使用队列http://ruby-doc.org/stdlib/libdoc/thread/rdoc/classes/Queue.html查看文

ruby - 如何从 ruby​​ 中的 IO 对象获取文件名

在ruby中...我有一个由外部进程创建的IO对象,我需要从中获取文件名。然而我似乎只能得到文件描述符(3),这对我来说不是很有用。有没有办法从此对象获取文件名甚至获取文件对象?我正在从通知程序中获取IO对象。所以这也可能是获取文件路径的一种方式? 最佳答案 关于howtogetathefilenameinC也有类似的问题,我将在这里以ruby​​的方式给出这个问题的答案。在Linux中获取文件名假设io是您的IO对象。以下代码为您提供了文件名。File.readlink("/proc/self/fd/#{io.fileno}")例

Ruby 1.9 线程池

据我所知,Ruby1.9使用OS线程,但实际上只有一个线程仍会并发运行(尽管一个线程可能正在执行阻塞IO而另一个线程正在执行处理)。我见过的线程示例只是使用Thread.new来启动一个新线程。由于具有Java背景,我通常使用线程池来避免启动许多新线程,因为它们是“重量级的”。Ruby中是否内置了线程池结构?我没有在默认语言库中看到一个。或者是否有通常使用的标准gem?由于操作系统级线程是ruby​​的一个较新的特性,我不知道这些库对它有多成熟。 最佳答案 您是正确的,因为默认的CRuby解释器一次只执行一个线程(其他基于C的动态语

ruby - Phusion passenger 中的多个请求是否在各自的线程中运行?

我有一个使用Phusionpassenger+Apache网络服务器部署的RubyonRails应用程序。每个请求是否都在由PhusionPassenger生成的自己的线程中运行? 最佳答案 Passenger(以及大多数其他应用程序服务器)每个线程运行不超过一个请求。通常每个进程也只有一个线程。来自PhusionPassengerdocs:PhusionPassengersupportstwoconcurrencymodels:process:single-threaded,multi-processedI/Oconcurrenc